// 版权所有2011 Go作者。版权所有。
// 此源代码的使用受BSD样式的约束
// 可以在许可证文件中找到的许可证。

package objabi

import "internal/buildcfg"

// 对于链接器。必须匹配Go定义。

const (
	STACKSYSTEM = 0
	StackSystem = STACKSYSTEM
	StackBig    = 4096
	StackSmall  = 128
)

// 根据目标系统初始化StackGuard和StackLimit。
var StackGuard = 928*stackGuardMultiplier() + StackSystem
var StackLimit = StackGuard - StackSystem - StackSmall

// stackGuardMultiplier返回要应用于默认值的乘数
// 堆栈保护大小。较大的乘数用于非优化
// 具有较大堆栈帧或特定目标的生成。
func stackGuardMultiplier() int {
	// 在AIX上，系统调用需要更大的堆栈。
	if buildcfg.GOOS == "aix" {
		return 2
	}
	return stackGuardMultiplierDefault
}
